#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 
# Copyright (c) 2017 Baidu.com, Inc. All Rights Reserved
# 

"""
File: run14.py
Author: zhangyang(zhangyang40@baidu.com)
Date: 2018/1/5 0005 14:27
"""
"""
题目描述
操作给定的二叉树，将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义：源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5
"""


class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    # 返回镜像树的根节点
    def Mirror(self, root):
        if root is None: return False
        stack = []
        stack.append(root)

        while len(stack) != 0:
            node = stack.pop()
            if node.left is not None or node.right is not None:
                nodeLeft = node.left
                nodeRight = node.right
                node.left = nodeRight
                node.right = nodeLeft
            if node.left is not None:
                stack.append(node.left)
            if node.right is not None:
                stack.append(node.right)
